{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Neurodynamics Simulation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Contents**\n",
    "\n",
    "- [brainpy.NeuGroup](#brainpy.NeuGroup)\n",
    "- [brainpy.TwoEndConn](#brainpy.TwoEndConn)\n",
    "- [brainpy.Network](#brainpy.Network)\n",
    "- [brainpy.connect module](#brainpy.connect-module)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For brain modeling, BrainPy provides the interface of `brainpy.NeuGroup`, `brainpy.TwoEndConn`, and `brainpy.Network` for convenient neurodynamics simulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:48.939126Z",
     "start_time": "2021-03-25T03:02:47.073698Z"
    }
   },
   "outputs": [],
   "source": [
    "import brainpy as bp\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## brainpy.NeuGroup"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`brainpy.NeuGroup` is used for neuron group modeling. User-defined neuron group models must inherit from the `brainpy.NeuGroup`. Let's take the [leaky integrate-and-fire](https://en.wikipedia.org/wiki/Biological_neuron_model#Leaky_integrate-and-fire) (LIF) model and [Hodgkin–Huxley neuron model](https://en.wikipedia.org/wiki/Hodgkin%E2%80%93Huxley_model) as the illustrated examples. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### LIF model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The formal equations of a LIF model is given by:\n",
    "\n",
    "$$\n",
    "\\tau_m \\frac{dV}{dt} = - (V(t) - V_{rest}) + I(t) \n",
    "\\\\\n",
    "\\text{after}\\, V(t) \\gt V_{th}, V(t) =V_{rest}\n",
    "\\,\n",
    "\\text{last}\\, \\tau_{ref}\\, \\text{ms} \n",
    "$$\n",
    "\n",
    "where $V$ is the membrane potential, $V_{rest}$ is the rest membrane potential, $V_{th}$ is the spike threshold, $\\tau_m$ is the time constant, $\\tau_{ref}$ is the refractory time period, and $I$ is the time-variant synaptic inputs. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As stated above, the numerical integration of the differential equation in LIF model can be coded as:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:48.959138Z",
     "start_time": "2021-03-25T03:02:48.941426Z"
    }
   },
   "outputs": [],
   "source": [
    "@bp.odeint\n",
    "def int_V(V, t, Iext, V_rest, R, tau):\n",
    "    return (- (V - V_rest) + R * Iext) / tau"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then, we will define the following items to store the neuron state:\n",
    "\n",
    "- ``V``: The membrane potential.\n",
    "- ``input``: The synaptic input.\n",
    "- ``spike``: Whether produce a spike.\n",
    "- ``refractory``: Whether the neuron is in refractory state.\n",
    "- ``t_last_spike``: The last spike time for calculating refractory state.\n",
    "\n",
    "Based on these states, the updating logic of LIF model from the current time $t$ to the next time $t+dt$ will be coded as:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:48.995265Z",
     "start_time": "2021-03-25T03:02:48.969008Z"
    }
   },
   "outputs": [],
   "source": [
    "class LIF(bp.NeuGroup):\n",
    "    target_backend = ['numpy', 'numba']\n",
    "\n",
    "    def __init__(self, size, t_refractory=1., V_rest=0.,\n",
    "                 V_reset=-5., V_th=20., R=1., tau=10., **kwargs):\n",
    "        # parameters\n",
    "        self.V_rest = V_rest\n",
    "        self.V_reset = V_reset\n",
    "        self.V_th = V_th\n",
    "        self.R = R\n",
    "        self.tau = tau\n",
    "        self.t_refractory = t_refractory\n",
    "\n",
    "        # variables\n",
    "        self.t_last_spike = bp.backend.ones(size) * -1e7\n",
    "        self.refractory = bp.backend.zeros(size)\n",
    "        self.input = bp.backend.zeros(size)\n",
    "        self.spike = bp.backend.zeros(size)\n",
    "        self.V = bp.backend.ones(size) * V_reset\n",
    "\n",
    "        super(LIF, self).__init__(size=size, **kwargs)\n",
    "    \n",
    "    @staticmethod\n",
    "    @bp.odeint\n",
    "    def int_V(V, t, Iext, V_rest, R, tau):\n",
    "        return (- (V - V_rest) + R * Iext) / tau\n",
    "    \n",
    "    def update(self, _t):\n",
    "        for i in range(self.size[0]):\n",
    "            if _t - self.t_last_spike[i] <= self.t_refractory:\n",
    "                self.refractory[i] = 1.\n",
    "            else:\n",
    "                self.refractory[0] = 0.\n",
    "                V = self.int_V(self.V[i], _t, self.input[i], self.V_rest, self.R, self.tau)\n",
    "                if V >= self.V_th:\n",
    "                    self.V[i] = self.V_reset\n",
    "                    self.spike[i] = 1.\n",
    "                    self.t_last_spike[i] = _t\n",
    "                else:\n",
    "                    self.spike[i] = 0.\n",
    "                    self.V[i] = V\n",
    "            self.input[i] = 0."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "That's all, we have coded a LIF neuron model. \n",
    "\n",
    "Each NeuGroup has a powerful function: ``.run()``. In this function, it receives the following arguments:\n",
    "\n",
    "- ``duration``: Specify the simulation duration. Can be a tuple with ``(start time, end time)``. Or it can be a int to specify the duration ``length`` (then the default start time is ``0``).\n",
    "- ``inputs``: Specify the inputs for each model component. With the format of ``(target, value, [operation])``. The default operation is ``+``, which means the input ``value`` will be added to the ``target``. Or, the operation can be ``-``, ``*``, ``/``, or ``=``.\n",
    "\n",
    "Now, let's run it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:49.010946Z",
     "start_time": "2021-03-25T03:02:49.000504Z"
    }
   },
   "outputs": [],
   "source": [
    "group = LIF(100, monitors=['V'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:49.941507Z",
     "start_time": "2021-03-25T03:02:49.014011Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Compilation used 0.0011 s.\n",
      "Start running ...\n",
      "Run 10.0% used 0.091 s.\n",
      "Run 20.0% used 0.167 s.\n",
      "Run 30.0% used 0.259 s.\n",
      "Run 40.0% used 0.334 s.\n",
      "Run 50.0% used 0.408 s.\n",
      "Run 60.0% used 0.473 s.\n",
      "Run 70.0% used 0.538 s.\n",
      "Run 80.0% used 0.605 s.\n",
      "Run 90.0% used 0.680 s.\n",
      "Run 100.0% used 0.747 s.\n",
      "Simulation is done in 0.747 s.\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "group.run(duration=200., inputs=('input', 26.), report=True)\n",
    "bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:50.811867Z",
     "start_time": "2021-03-25T03:02:49.944594Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Compilation used 0.0000 s.\n",
      "Start running ...\n",
      "Run 10.0% used 0.074 s.\n",
      "Run 20.0% used 0.148 s.\n",
      "Run 30.0% used 0.219 s.\n",
      "Run 40.0% used 0.283 s.\n",
      "Run 50.0% used 0.367 s.\n",
      "Run 60.0% used 0.452 s.\n",
      "Run 70.0% used 0.520 s.\n",
      "Run 80.0% used 0.588 s.\n",
      "Run 90.0% used 0.656 s.\n",
      "Run 100.0% used 0.735 s.\n",
      "Simulation is done in 0.735 s.\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "group.run(duration=(200, 400.), report=True)\n",
    "bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you experenced just now, the benifit of inheriting `brainpy.NeuGroup` lies at the following several ways:\n",
    "\n",
    "- Easy way to monitor variable trajectories.\n",
    "- Powerfull \"inputs\" support.\n",
    "- Continuous running support. \n",
    "- Progress report support. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "On the model definition, BrainPy endows you the fully data/logic flow control. You can define models with any data you need and any logic you want. There are little limitations/constrains on your customization. 1, you should set what computing backend do your defined model support by the keyword `target_backend`. 2, you should \"super()\" initialize the `brainpy.NeuGroup` with the keyword of the group `size`. 3, you should define the `update` function."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Hodgkin–Huxley model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The updating logic in the above LIF model is coded with a for loop, which is very suitable for Numba backend (because Numba is a Just-In-Time compiler, and it is good at the for loop optimization). However, for array-oriented programming languages, such as NumPy, PyTorch and TensorFlow, this coding schema is inefficient. Here, let's use the HH neuron model as example to demonstrate how to code an array-based neuron model for general backends."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:50.837658Z",
     "start_time": "2021-03-25T03:02:50.814760Z"
    }
   },
   "outputs": [],
   "source": [
    "class HH(bp.NeuGroup):\n",
    "    target_backend = 'general'\n",
    "\n",
    "    def __init__(self, size, ENa=50., EK=-77., EL=-54.387,\n",
    "                 C=1.0, gNa=120., gK=36., gL=0.03, V_th=20.,\n",
    "                 **kwargs):\n",
    "        # parameters\n",
    "        self.ENa = ENa\n",
    "        self.EK = EK\n",
    "        self.EL = EL\n",
    "        self.C = C\n",
    "        self.gNa = gNa\n",
    "        self.gK = gK\n",
    "        self.gL = gL\n",
    "        self.V_th = V_th\n",
    "\n",
    "        # variables\n",
    "        self.V = bp.backend.ones(size) * -65.\n",
    "        self.m = bp.backend.ones(size) * 0.5\n",
    "        self.h = bp.backend.ones(size) * 0.6\n",
    "        self.n = bp.backend.ones(size) * 0.32\n",
    "        self.spike = bp.backend.zeros(size)\n",
    "        self.input = bp.backend.zeros(size)\n",
    "        \n",
    "        def diff(V, m, h, n, t, Iext, gNa, ENa, gK, EK, gL, EL, C):\n",
    "            alpha = 0.1 * (V + 40) / (1 - bp.backend.exp(-(V + 40) / 10))\n",
    "            beta = 4.0 * bp.backend.exp(-(V + 65) / 18)\n",
    "            dmdt = alpha * (1 - m) - beta * m\n",
    "\n",
    "            alpha = 0.07 * bp.backend.exp(-(V + 65) / 20.)\n",
    "            beta = 1 / (1 + bp.backend.exp(-(V + 35) / 10))\n",
    "            dhdt = alpha * (1 - h) - beta * h\n",
    "\n",
    "            alpha = 0.01 * (V + 55) / (1 - bp.backend.exp(-(V + 55) / 10))\n",
    "            beta = 0.125 * bp.backend.exp(-(V + 65) / 80)\n",
    "            dndt = alpha * (1 - n) - beta * n\n",
    "\n",
    "            I_Na = (gNa * m ** 3.0 * h) * (V - ENa)\n",
    "            I_K = (gK * n ** 4.0) * (V - EK)\n",
    "            I_leak = gL * (V - EL)\n",
    "            dVdt = (- I_Na - I_K - I_leak + Iext) / C\n",
    "\n",
    "            return dVdt, dmdt, dhdt, dndt\n",
    "        \n",
    "        self.integral = bp.odeint(f=diff, method='rk4', dt=0.01)\n",
    "        \n",
    "        super(HH, self).__init__(size=size, **kwargs)\n",
    "\n",
    "    def update(self, _t):\n",
    "        V, m, h, n = self.integral(self.V, self.m, self.h, self.n, _t,\n",
    "                                   self.input, self.gNa, self.ENa, self.gK,\n",
    "                                   self.EK, self.gL, self.EL, self.C)\n",
    "        self.spike = (self.V < self.V_th) * (V >= self.V_th)\n",
    "        self.V = V\n",
    "        self.m = m\n",
    "        self.h = h\n",
    "        self.n = n\n",
    "        self.input[:] = 0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In HH example, all the operations (including \"zeros\", \"ones\" and \"exp\") are used from the `brainpy.backend` as `bp.backend.zeros`, `bp.backend.ones` and `bp.backend.exp`. What's more, we set the \"target_backend\" as `general`. So, let's try to run this model on various backends."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First is PyTorch."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:02:58.556910Z",
     "start_time": "2021-03-25T03:02:50.842667Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEGCAYAAACO8lkDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAy4ElEQVR4nO3deXRb93Xg8e8FwR0EwFXcRWqxJVKSJVlWs8eNnWZpameSTuucpnGnmbjNOG3cTk+aTGa6TX2m6eJu0zbHbXKapuk47knSOEmz2G7iJmm8SLL2ldopUuK+Y8dv/ngPFCRuIAm8BxL3cw6PwAcS7+oRwMVvuz8xxqCUUkql87gdgFJKqfyjyUEppdQcmhyUUkrNoclBKaXUHJoclFJKzeF1O4BsqKurMx0dHW6HoZRSa8rBgweHjDH18923LpJDR0cHBw4ccDsMpZRaU0Tk8kL3abeSUkqpOTQ5KKWUmkOTg1JKqTk0OSillJpDk4NSSqk5NDkopZSaQ5ODUkqpOTQ5pDHG8K3j/fywZ8jtUJRSylWaHNL86MIwv/yPh/i5v3uJH50fdjscpZRyjSaHNN89PQBAna+U3/3aCRJJ3QhJKVWYNDmkOT84zfYmP7/1U12cvj7J86duuB2SUkq5QpNDmsvD03TUVvDOHY20BMv5zA8uuh2SUkq5QpNDmpHpKHW+UrxFHt7/mo28dHGES0PTboellFKO0+RgSyYN46EYwYpiAN69pxkR+OrhPpcjU0op52lysE1G4iQNBMqt5NAUKGd/Rw1fPXwNY3RgWilVWFxPDiJSJCKvisjX7e9rRORZETln/1vtRBzjMzEAghUls8ce2N3MhaFpzt6YciIEpZTKG64nB+CjwKm07z8OPG+M2Qo8b3+fc2OhKABBu+UAcN+2DQD8mz3FVSmlCoWryUFEWoGfBP4u7fCDwOfs258D3u1ELGOzLYebyaExUEZ3s59/O61TWpVShcXtlsOfAR8DkmnHNhhj+gHsfxvm+0UReUREDojIgcHBwVUHMhWJA+Aru3Xn1Pu2NXDw8iij09FVn0MppdYK15KDiLwLGDDGHFzJ7xtjnjTG7DPG7Kuvn3d/7GUJRRMAVBTfmhx+fFsDSQM/0HpLSqkC4mbL4fXAAyJyCXgKeIuI/CNwQ0SaAOx/HenwD8et5FBWfOsl2dkSwFfq5cULWmtJKVU4XEsOxphPGGNajTEdwEPAvxlj3g88Azxs/9jDwFediCfVcigtLrrluLfIwz0d1ZoclFIFxe0xh/n8AfBWETkHvNX+PucicWvYo/y25ADw2s21nB+cZmAy7EQoSinlurxIDsaY7xlj3mXfHjbG3GeM2Wr/O+JEDKFoAo9AcZHMue81m2oBePGCI6EopZTr8iI55INwLEF5cREic5NDd3OAKh13UCqnXjg7yDeP9bsdhrJpcrCFYgnK5ulSAijyCPd01vCSJgelcuLqyAwPf/ZlPvyFQ3z3jC46zQeaHGzhWHLB5ABw98Zqzg9Oz5bZUEplT3pCePKFCy5GolI0OdjCscScaazp9rQFATjcO+ZMQEoVkBPXJqiuKOaj923lxYvDDE5G3A6p4GlysIVjCcpLFm457GoL4hE4dHnUwaiUKgynr0+wvcnP27obMQae010YXafJwRaKJSjzLpwcfKVe7thQxatXx5wLSqkC0Tcepq26gu1NVbQEy2f3c1fu0eRgCy8yIJ2yp72aw1dGSSZ1fwelsiWeSDI0FWGDvxQR4bWba3n50oi+zlymycEWS5h51zik29MeZCIc58KQ7u+gVLYMTUUxBhr8ZYC1rmhsJsbZgUmXIytsmhxssUSS4qLFL8fedmvfoUNXxhyISKnCcH3CqjzQaCeHH+usAeAlXXTqKk0OtlgiSbF38cuxqa4Sf5mXVzU5KJU1qXL4NT5rF8a2mgpaguW8fFGTg5s0OdhiCUPJEi0Hj0fY2Rrg2LUxZ4JSqgBMhK21Q4G0XRj3tAc5rJM/XKXJwWZ1Ky0+5gCwoyXAmeuTROwS30qp1ZkIWcnBX3YzOexuC3JtLKTrHVykycEWSyTxLtFyANjVEiSWMJy9roPSSmXDRNjahbEqbRfGXa1BAI7qolPXaHKwRePJJbuVwNr8B+DYtfFch6RUQZgIxyjxem6ZSr6jxY9H4Ih2LblGk4Mtnlx6KitAW005gfJiTQ5KZclEKH5LlxJARYm16PRwr77O3KLJwZbJVFYAEWFHi5/jmhyUyoqJcAx/uXfO8d1tQY5cHcMYXQznBk0OgDGGWMJkNOYANwelo/bucUqplZsIxea0HAB2tgYYD8XoHQ25EJXS5IA1jRWgJINuJbDGHaKJJGdv6ApOpVZrMhzHXz43OWxv8gNwsn/C6ZAUmhwAiCetFkAm3Uqgg9JKZdNEOHbLTKWUbY1ViMApTQ6u0OQAxOJWyyHT5NBeU4G/zKvJQaksmIkk8JXMTQ4VJV466yo52afJwQ2aHIBowm45LFE+I8UalA7ooLRSWRBaZC+Vria/diu5RJMD1kwlgGJPZmMOYHUtne7XQWmlVmux/du7mv30joYYD+n2vE7T5EBacsiwWwmsGUvRRJJzWlZYqRVLJA3ReJLyBZJDalBaxx2c51pyEJE2EfmuiJwSkRMi8lH7eI2IPCsi5+x/q3MdS2q2UqbdSmAlB4AT2h+q1IqFY1aNsvKS+V973akZS/o6c5ybLYc48N+NMduB1wCPikgX8HHgeWPMVuB5+/ucSrUcMp3KCrCxpgJfqZcTOu6g1IqFUslhgZZDfVUpdb4SbTm4wLXkYIzpN8Ycsm9PAqeAFuBB4HP2j30OeHeuY1lJt5LHI3Q1+Tmun2iUWrFQ1EoOC405iAjbdVDaFXkx5iAiHcAe4CVggzGmH6wEAjQs8DuPiMgBETkwODi4qvOnkkOmK6RTulv8nOybIKF73Sq1Ije7lRbev72r2c+5G1M6+cNhricHEfEBXwIeM8Zk/PHAGPOkMWafMWZffX39qmKIzq5zyLxbCWBHc4BQLMHFoelVnV+pQrVUtxJY01mjiSTnB7VMvpNcTQ4iUoyVGL5gjPmyffiGiDTZ9zcBA7mOI7VCOpOS3em6W6zBshN9Ou6g1EqkupUWSw6pGUunr2vXkpPcnK0kwGeAU8aYJ9LuegZ42L79MPDVXMeykjEHgC31Pkq9Hl0Mp9QKzdgth7JFupU66yopKfJwql+njTtp7pp157we+HngmIgcto/9D+APgKdF5IPAFeA/5zqQ6DLLZ6R4izxsa/LrdFalViicQcuhuMjD1g0+nbHkMNeSgzHmB8BCnfz3ORnLzZbD8sYcALqb/Xz9SB/GGKzGkFIqU5mMOQBsa/TzwtnVTTxRy+P6gHQ+WG5V1nQ7mgNMhONac16pFUglh4pFupUAtjdVMTQVYXAy4kRYCk0OQFpV1mWskE7ZYQ9K67iDUss3u85hyeRgvc7OXNdxB6dociCtKusKupXu2FCF1yM67qDUCoQz7laqArTGkpM0OZBelXX5l6OsuIgtDT6O63RWpZYtFEvg9ciSXbq1vlIaqko5pdNZHaPJgbTksIJuJcDe20GftEotVyi6cEXW221v8ut0VgdpciCtKusKupUAdjT7GZqKMDARzmZYSq17oVhiyfGGlG1NVfQMTM5+mFO5pcmB1XUrAXTb5bu1a0mp5QnHEhm3HLqa/MQSRstoOESTA1Zy8HoEzzJ2gku3vcmPCNq1pNQyhaKZJ4dtjXYZDe1acoQmByCeMBStMDEA+EqtjdB1OqtSy7OcbqVN9akyGvohzAmaHLDGHFayAC5dd3NAp7MqtUyhWILy4sxee8VFHrY0+Dilax0cockBSCSTeFc4GJ2yo9nPtbEQo9PRLEWl1Pq3nDEHsAalteXgDE0OQDxp8K6iWwl0T2mlViIUTSy60c/tupr8DE5GGJrSMhq5psmB1Y85gFWAD3RvB6WWIxRLLLhF6Hx0UNo5mhxItRxWdymCFSW0BMt1T2mllmG53Urbm6wyGrrxT+5pcsCqyrraMQewivCd0BlLSmVsOVNZwSqjUV9VqiulHaDJgeyMOYBVvvvC0DRTkXgWolJqfTPGWLOVljHmAKkyGtpyyDVNDkAisfpuJbi5p7Q+cZVaWjSRJGlY1pgDwPbGKnoGprSMRo5pcsDqVlrtgDRYLQfQvR2UykQ4ar25L6dbCayWQzSR5MLgdC7CUjZNDljdSistupeuwV9GfVWpltFQKgOzW4Qus1tpmw5KO0KTA9mZypqyo9mv01mVykCm+0ffblOdj+Ii4aR23+aUJgfs2UpZGHMAq4zGuYGp2R2ulFLzm4laEzeWO+ZQ4vWwpaFK1zrkmCYHIJE0WZnKCtZ01kTS6F63Si0h9QGqLMPaSum2N2oZjVzT5IBVeC9b3Urdzbq3g1KZCNkD0hUl3mX/7vYmPwOTEYa1jEbOaHLAajmstiprSmt1OYHyYq2xpNQSVjrmAOmD0tpCz5W8TQ4i8nYROSMiPSLy8VyeK57MXstBROhu1pXSSi3l5mylFXQrNemaolzLy+QgIkXAXwHvALqA94lIV67OF7d3gsuWHS0BTl3XvW6VWkw4mhpzWH7Loc5XSp1Py2jkUl4mB2A/0GOMuWCMiQJPAQ/m6mTWgHT2LkV3s59oPKl73Sq1iNV0K4FVhE/XOuROviaHFuBq2ve99rFZIvKIiBwQkQODg4OrOlksmd2Ww+ygtC6GU2pBK10El7K9yc+5G1PEtYWeE/maHOZ7pza3fGPMk8aYfcaYffX19as6WSKLs5UAOusqqSgp0jIaSi0ilOpW8q685RBNJLkwpGU0ciFfk0Mv0Jb2fSvQl6uTZat8RkqRR+hq0pXSSi0mHEtQ6vXgWeEHs9TGPzoonRv5mhxeAbaKSKeIlAAPAc/k6mTZnK2U0t3s52TfBMmkWfqHlSpAKynXnW5zvVVGQwelcyMvk4MxJg58BPg2cAp42hhzIlfns2YrZfdSdLcEmI4muDSsTV6l5rPcjX5uV+L1sLnep4PSObL8pYkOMcb8K/CvTpwrkaXNftLNlu/um2BTvS+rj63UehBa5hah89ne5Oc/zg9lKSKVLi9bDk6LJQ1FWRxzANi6wUdJkUfHHZRaQDiWWNEah3Tbm6q4MRFhZDqapahUiiYH7PIZWe5WKi7ycGdjFSd0OqtS81rtmAPcHJQ+rYPSWVfwycEYQyIHA9JgVWg93jeOMToordTtVjvmAGllNLTGUtYVfHKI27OJsj3mANZiuLGZGNfGQll/bKXWulAsueqWQ31VKXW+Ep3OmgMFnxwSqeSQxfIZKd3N1qcardCq1FzhLAxIg9V60BlL2VfwySFVHC8XLYftTX6KPKIVWpWaRza6lQC2NVZxVstoZF3BJ4ebLYfsJ4ey4iK21Ps4ri0HpebIxoA0WB/CovEkF7WMRlYVfHLI5ZgDWF1LOp1VqblCWZjKCmllNHRQOquWTA4iskFEPiMi37S/7xKRD+Y+NGfEE1ZyKMryVNaU7pYANyYiDEyGc/L4Sq1FiaQhGk9mpVtpc0MlXo/ooHSWZfKO+PdYZSya7e/PAo/lKB7HxZP2mEMOupUAduigtFJzhFexC9ztSr1FbGnw6VqHLMvkL1NnjHkaSMJs3aNETqNyUKrlkKtupa5UctBBaaVmzURXt9HP7bY1VmkBvizLJDlMi0gt9n4KIvIaYN2806XGHHKxCA6gqqyYjtoKbTkolSbVcsjGmANYH8KuT4QZmopk5fFUZsnh17HKZW8WkR8C/wD8Sk6jclBqtlJxDtY5pHS3BDiug9JKzZptOWRhthLAzpYgAMe0hZ41S74jGmMOAW8GXgf8EtBtjDma68CcklrnkKuWA1gVWq+OhBifieXsHEqtJVOROACVpdkpDN3dYnXfHu/V5JAtS/5lROQDtx3aKyIYY/4hRzE56mbLIXfJYWeLVb772LVx3rC1LmfnUWqtmIlaycGXpeTgLytmU10lR7XlkDWZ/GXuSbtdBtwHHMLqXlrzbo455K5baWerlRwOXx3V5KAUMJ1qOZRkb0uZna0BXr44krXHK3RL/mWMMbeML4hIAPh8ziJyWDyH5TNSAuXFbK6v5PDVsZydQ6m1ZCpijTlUlmZnzAGsFvpXD/cxMBmmoaosa49bqFbycXkG2JrtQNySyPEK6ZS72oIcvqrlu5WCtJZDlrqV4Gb37XHtWsqKTFZIf01EnrG/vg6cAb6a+9CcEcthbaV0e9qCDE1FtHy3UsB0lsccwJoVKALHenXaeDZk8pf547TbceCyMaY3R/E4LpFaIZ3DMQeA3W3VABy+OkZrdUVOz6VUvpuOxPEIlHqz97rzlXrZVFfJsWtjWXvMQpbJmMMLTgTilpu1lXLbcrizsYoSr4fDV8Z4167mpX9BqXVsOpKgstSLSHZfd7tag/zH+aGsPmahWjBti8ikiEzM8zUpIuum3RZ3qFupxOthR7OfI71jOT2PUmvBdCSe1S6llB12ocsbE1rocrUWTA7GmCpjjH+erypjjN/JIHPpZsnu3Fcv391WzbFr47ML75QqVNPROBVZWh2dbpc9bfyYLoZbtYzfEUWkQUTaU1+rOamI/JGInBaRoyLyFREJpt33CRHpEZEzIvK21ZwnE05MZU3Z3R4kHEtyRuvOqwI3FUnkpOXQ1eTHI1pGIxsyma30gIicAy4CLwCXgG+u8rzPAjuMMbuwSoB/wj5XF/AQ0A28HfhrEcn+x4s0uS68l253axBAu5ZUwZuJxLM6jTWlstTL5nqfJocsyKTl8L+B1wBnjTGdWCukf7iakxpjvmOX/gZ4EWi1bz8IPGWMiRhjLgI9wP7VnGspThTeS2mrKaemsoTDV8Zyfi6l8tlUJE5FFldHp9vZGuBor64pWq1M3hFjxphhwCMiHmPMd4HdWYzhF7nZEmkBrqbd12sfm0NEHhGRAyJyYHBwcMUnjztQeC9FRNjdFtSV0qrgTUfj+LK4OjrdzpYAQ1MRbkxo+e7VyCQ5jImID/g+8AUR+XOs9Q6LEpHnROT4PF8Ppv3MJ+3H+kLq0DwPNW/6N8Y8aYzZZ4zZV19fn8F/Y35xBwrvpdvdFqRncIrJsFZoVYUrNZU1F1KD0ke1+3ZVMvnr/DsQBD4KvB8IAL+31C8ZY+5f7H4ReRh4F3Cfudn+6wXa0n6sFejLIMYVSzg45gBWGQ1jrNkUr9uiRfhU4THGMBGK4S8vzsnjdzUFZgelf6K7MSfnKASZtBwEaw/p7wE+4It2N9OKicjbgd8EHjDGzKTd9QzwkIiUikgnVg2nl1dzrqXEEs5NZYWbg9KvateSKlAz0QTxpCGQo+RQXlLEHRuqOKrTWVclk81+ftcY0w08CjQDL4jIc6s87/8FqoBnReSwiHzaPtcJ4GngJPAt4FFjTE73q54tn+FQt1Kgwqo7r+MOqlCNh6wu1VwlB7DGHY5d00Hp1VhOp98AcB0YBhpWc1JjzJZF7nsceHw1j78cqZZDUZaX8S/mrrYgP+gZwhiT9fIBSuW7CXu8zV+Wu+Swqy3IPx/spXc0RFuN1jJbiUzWOXxYRL4HPA/UAR+y1yesC4mkwSPgcWjMAaxB6cHJCP3jusRfFZ7Udrm5bDnsStt9Ua1MJh3tG4HHjDHdxpjfNsaczHVQToonDV4H1jik290WBNCuJVWQnOhW2tZURXGR6ILTVchkzOHjxpjDDsTiingi6UjpjHTbm/xWhVZNDqoATYStmfC5TA6l3iK2Nfq1xtIqOPuROQ/Fk8bx5FDi9dDV5NfkoApSquXgL8/NOoeUXa0BjvWOk0zqoPRKFHxySLjQrQRW19Kx3vHZFdpKFYpUcqjK4YA0WMlhMhLn0vB0Ts+zXhV8cognk44tgEu3uy1IKJagZ3DK8XMr5aaJUIyqMm/OX3e77DVFut5hZQo+OSRc6FYCazorwBHtWlIFZiIUy+k01pStDT7Kij2aHFao4JNDPGnwuLDWoKO2gkB5MYev6hNXFZbRmSjBitwnB2+Rh+7mgNZYWqGCTw7JpHGlW0lEuEsrtKoCNDwdpc5X6si5drYEONE3oWN7K1DwySFhnNkFbj67WwOcvTHJTHTJIrdKrRtDkxHHksNdbQEd21shTQ7JpKOro9Pd1RYkkTSc6Jtw5fxKOc0Yw9B0lDpfiSPn29kSBHRQeiU0OSSNo3WV0qVmU+igtCoUU5E40XjSsZbDprpKfKVeHXdYAU0OSef2crhdfVUpLcFyLd+tCsbQVBSAWodaDh6PsKNFV0qvhCYHl9Y5pOxuD2rLQRWM4Slr685ah1oOAHe1BjnVP0k0roPSy6HJwThbkfV2u1uD9I6GGJrS/W7V+pdqOTg15gCwszVANJHkzPVJx865HhR8cki6tAguJbUYTvtEVSFIfQiqrXS25QBohdZlKvjkEE8mXRuQBtjR4scj6GI4VRBuTITxiLMth9bqcqorinXcYZkKPjkkk+DQ9tHzqijxcseGKl0MpwrCtbEQG/xljha7FBF2tgY5qhv/LEvBJ4eEMXjdzA7AHntQWve7Vetd/1iY5mC54+fd1WItOA1Fc7ol/bpS8MkhnjSuDkiD1Sc6HopxeXjG1TiUyrX+8RBNgTLHz7urNUAiaTjZrwtOM1XwySGZNBS5mxtuVmjVATO1jhlj6Bt3qeUwW757zPFzr1UFnxwSSUORy91KWxt8lBcX6biDWteGp6NE40maXWg5NAbKaKgq1UHpZdDkkDS4sBHcLbxFHna0+LX+i1rXro2GAFxpOYDVtaSt88xpcjDulOy+XXdzgNP9E7rfrVq3Lg5Z23V21lW6cv5drUEuDE0zGY65cv61xtXkICK/ISJGROrSjn1CRHpE5IyIvC3XMSTzoFsJoKvJz3Q0weURHZRW69OFoWlEoL22wpXz72wNYAwcv6aD0plw7V1RRNqAtwJX0o51AQ8B3cDbgb8WkaJcxhHPgwFpgK5mPwAntXy3WqcuDk3TWl1OqTenL+kF7WoJAHDs2pgr519r3PzI/KfAx4D0fpQHgaeMMRFjzEWgB9ifyyASeTCVFWDrBh9ej3CyX8cd1Pp0cWiKzjqfa+ev9VlVkI/o2F5GXEkOIvIAcM0Yc+S2u1qAq2nf99rH5nuMR0TkgIgcGBwcXHEsCZdrK6WUeovY0uDTloNal5JJw4XBaTa5NN6QcldbQGcsZShnyUFEnhOR4/N8PQh8Evit+X5tnmPzjtAaY540xuwzxuyrr69fcZz5MiANVteSLtJR69HlkRlmogm2N1W5GsfOliBXRmYYnY66GsdakLPkYIy53xiz4/Yv4ALQCRwRkUtAK3BIRBqxWgptaQ/TCvTlKkawPtF4XCy8l66ryc+NiYiW71brTqpF3N0ccDWOu1qt82udpaU53q1kjDlmjGkwxnQYYzqwEsJeY8x14BngIREpFZFOYCvwci7jiedJtxLooLRav070jeP1CFs3uDfmADdfY6e1hb4k9+dwpjHGnACeBk4C3wIeNcbktFJWMk8GpMFqOQDataTWneN9E2xp8Lk2UyklWFHCBn+pbvyTAa/bAdith/TvHwced+r8VlXW/EgOwYoSWoLl2nJQ60o8keTQ5VHevafZ7VAAuLPRz5kbmhyWklctBzfkQ1XWdHc2VnFWn7hqHTnVP8lUJM7+zlq3QwFgW2MV5wamiCd0T+nFFHxysKqy5k9y2Nrg48LQtD5x1brx0sVhAPZ31LgcieWODVVE40kuaYn8RRV8csinbiWALQ0+ovEkV+0iZUqtdT/sGWJjbQWNLlRjnc+2Rms6rbbQF1fQySGZNBhDXnUrbd1gPXHP6RNXrQPTkTg/PD/MW7Y1uB3KrC0NPjwCp3VQelEFnRwS9rac+dSttKXBmurXMzjlciRKrd73zw0SjSd5a9cGt0OZVVZcREdtJWeu68SPxRR2crDLYxflQ+U9m6/US1OgjJ4bmhzU2ve1o/0EK4rzZrwhxZr4oa+xxWhyIL9aDmC1Hs4N6BNXrW2j01GePXGDd+9uwev2jlq3uWNDFZeGpwnHcrqMak3Lr7+Yw2a7lfJozAFga0MVPQNTuvGPWtO+8uo1ookkP3tP29I/7LDNDT6MubkBkZqroJND6s0375LDBh+hWIJrYzpjSa1NsUSSz/7wInvag2y3V/7nk831VnXYC4OaHBZS0Mkhnq/JwR6UPjegsynU2vTM4T56R0N85Me3uB3KvFJblV7QiR8LKujkkGo55EtV1pTN9VZy0E81ai0KRRM88exZupr8eTWFNV1FiZfmQBnnNTksyPXaSm5KjTnk0yI4gGBFMf4yL5d1Badag/7quz1cGwvxpz+7G8mzD17pNtvVCNT8CrrlEE/YLYc8Sw4iQmddJZeG9Ymr1pZDV0b59Avnec+eFvZ35tf01dttqqvk/MAUxujEj/kUdHJI5uEiuJSNtZoc1NoyNhPlV/7pVRoDZfz2A91uh7OkzQ0+pqMJBiZ1c635FHRySK1z8ObRIriUjrpKro2GiMa1AJ/KfzPROL/4968wOBXhL9+3h0B5sdshLWlTnTW2p+MO89PkQP4NSAN01lWQNHBlRMcdVH6bjsT5pc8f5PDVMf7iod3saa92O6SMbLKns57XiR/zKuzkkKeL4MDqVgK4rF1LKo8NTkZ439++yH+cH+ZT793F23c0uR1Sxhr9ZVSUFOl01gUU9mylPF3nANBpJwddwany1Q97hnjsi4eZDMd48ufv5r7t+VNcLxMejzXxQ1sO89PkQH4OSKems+qgtMo3E+EYT3znLJ/70SU21/v4/Af3s60x/1ZBZ6KzrpIjvWNuh5GXCjo5VJZ6edMd9dRVlbodyhyp6ay61kHli3giyb8c7uNT3zrN0FSE9//YRj7xzm1UlKzdt5FN9T6+cayfSDxBqbfI7XDyytr9q2bB5nof//CL+90OY0Ebays5dGXU7TBUgUskDV8/2sefP3+OC4PT7GoN8Hcf2MddbUG3Q1u1TXWVGANXhmdmN9pSloJODvmuo66Srx/t0081yhWj01G+eOAqn//RZa6NhbhzQxWffv9efqKrMe8Wjq5UqsbS+cFpTQ630eSQx1LTWa+OhGZ3iFMqlxJJw4/OD/PlV3v5xtF+IvEkr9lUw/961/Z1lRRSOut14sdCXEsOIvIrwEeAOPANY8zH7OOfAD4IJIBfNcZ8260Y3ZaaznppaFqTg8oZYwzHro3zL6/28bWjfQxORqgq9fLTd7fygdd2cGfj+v1E7S8rps5XysUhnc56O1eSg4j8OPAgsMsYExGRBvt4F/AQ0A00A8+JyB3GmILcrik1nVVnLKlsi8QTvHRhhOdO3eC5kzfoGw9TUuThx7fV8+DuFt6yrYGy4sLoytxUV6kVkOfhVsvhw8AfGGMiAMaYAfv4g8BT9vGLItID7Ad+5E6Y7tLprCqbBibDfP/sEM+fvsELZwaZjiYoK/bwxq31PHb/Hbytu5FARf6Xvci2TfWVPHvyhtth5B23ksMdwBtF5HEgDPyGMeYVoAV4Me3neu1jc4jII8AjAO3t7bmN1iWz1VmHdDqrWr7pSJyXL47wg54hfnBuiDM3rM2jGqpKeWB3C2/tauB1m+sKpoWwkM66Soano4zPxAoyOS4kZ8lBRJ4DGue565P2eauB1wD3AE+LyCZgvtGueevpGmOeBJ4E2Ldv37qtudtRV8nByzqdVS0tlkhytHeMH5wb5oc9Qxy6Mko8aSj1etjfWcO797Twhi11dDf7193A8mpsSm2uNTS1ZupCOSFnycEYc/9C94nIh4EvG6uQ+ssikgTqsFoK6buRtwJ9uYpxLdhYW8nXjuh0VjVXOJbgyNUxXr44wsuXRjh0eZTpaAIR2NkS4ENv2sQbttRx98bqgm8dLCY1nfXi0LQmhzRudSv9C/AW4HsicgdQAgwBzwD/JCJPYA1IbwVedinGvHBzOusMWxrW76wRtbTJcIyDl0d55dIIL18c4cjVcaIJq6T7tsYq3rO3lddtruW1m2sJVpS4HO3a0V5TQZFHdDrrbdxKDp8FPisix4Eo8LDdijghIk8DJ7GmuD5aqDOVUjpmC/Bpcig0w1MRXrk0yssXR3jl0ggn+sZJGmtb2x0tAX7h9R3s76hhX0e1JoNVKPF6aKsu1xlLt3ElORhjosD7F7jvceBxZyPKXx1aurtg9I2FePniCC/ZyaBnwJp7X+r1sKc9yEfespUf66xhT3twTdczykeddZW6n/Rt9BmW56orSwiUF2uTd50xxnBhaNpqFdgJ4dpYCICqMi/7Nlbz3r2t7O+sZmdLkBJvQW+9knOddT5evDBCMml0sN6myWEN6Kit0LUOa1w8keT09cnZ8YJXLo0wNBUFoM5Xwv7OGj70xk7u6axhW6M/L/cYWc821VcSiiW4PhGmOVjudjh5QZPDGtBRV8mBSzqddS2ZjsR59coYBy6PcODSKK9esWYSAbRWl/OmO+rZ31HD/s4aOusqkTzcU6SQbEqbsaTJwaLJYQ3oqK3kmSN9hGMJnZKYp25MhDlwyZpJdODyCKf6J0kkDSKwvdHPe+9uZV9HDfs2VuubTx5KFeC7MDjF67fUuRxNftDksAZ01FVg7OmsWlbYfcmkoWdwilcujXDw0iivXB7h6og1XlBW7GFPWzWP3ruZuzuswWN/ma66zXeN/jLKi4t0UDqNJoc1IDVj6cKQ1px3QziW4Gjv+GwX0cHLo4yHYgDU+UrZt7Gah1/bwT0dNXQ1+yku0sHjtSZVqkYnftykyWENSCWEM9cneVv3fBVJVDYNT0U4dGWMA5dGOHB5lGO9Nxebba6v5B07Grl7YzX3dNSwsbZCxwvWic76So7qftKzNDmsAb5SLxtrKzh9fcLtUNadWCLJmeuTHLoyyqtXxjh0ZXR23+7iImFnS4D/8voO9nXUcPfGamoqdbHZetXV5OcbR/u1AJ9Nk8Masb3Rz6n+SbfDWPMGJyO3JIJjveOEYtYsovqqUva2B3nf/nb2tlezqzWgEwAKyM6WAADH+8Z1UBpNDmvGtqYqvn3yOjPRuK6OzVA4luD09UkOXxnlkJ0MeketgePiIqGrOcBD+9vY017N3vYgLcFy7SIqYLtareRwtFeTA2hyWDO2N/kxBk71T3D3xhq3w8k70XiSszcmOdo7zrFrYxztHefM9UniSauae6O/jL0bg/zC6zrY0x6ku1lbBepWwYoS2msqOH5t3O1Q8oImhzVir11K+MCl0YJPDvFEknMDUxzrHefotTGO9Y5zqn9ydtA4UF7MrtYAj7xpE7taA+xqDeraApWR3W1BXrwwjDGm4FuRmhzWiPqqUjbVVfLKpRF+6c2b3Q7HMaPTUU71T3Cyf4LT1yc51T/BuYEponErEVSVetlhDxrvbA2wqyVIW412D6mVecOWOp450sfZG1Pc2VjY08Y1Oawh+ztr+Ndj/cQTSbzrbC59JJ7g0tAMp6/fTAKn+ie4MRGZ/Zk6Xynbm6r4hdd10NXkZ1drgI7aSi2UprLmDVutsYbvnxvU5OB2ACpz995Zz1OvXOWliyNrdsBsIhzj/MAUPQNT9AxOcX5givOD01wensYeHsDrEbY0+Hjd5jq2N1WxvcnPtkY/9VWl7gav1r3mYDnbm/x87Wg///WNm9wOx1WaHNaQe+9soLKkiK8d6cvr5DAViXN5eJorwzNcHpnhysgMl4amOT84dUtLoLjIWpW6rbGKd+1qYkuDj60NVWxp8GmJauWa9+5t4fe/cYoz1yfzqvWQTBpuTIa5PDzDleEZLg1Pc3lkhh3NAT58b/a7mjU5rCFlxUX85K4mvvLqNX79J+6goarMlTimI3H6x8P0j4foHwtzddRKAJeHrX9HpqO3/Hx1RTHttZW8YUs9mxsq2VLvY0uDj/aainXXPabWvvfsbeWJZ8/yZ8+d5W/ef7dj500mDYNTEa6Nheib/QrTO3rztRWxx9rAamG3VpezsaYiJ/Foclhj/tu9W/jSoWv8/tdP8ecP7c7qwGsiaRiejjA0GWVoKsLAZIT+sRB942Guj4foHw/TNxZiIhy/5fc8YjXHN9ZW8LbuRtprKthYW0F7TQXttRVaeE6tKTWVJfzymzfzxLNnefqVq/zMPW2rfszpSJzByQiDUxHr38kIA5Nh+sfCVjIYD3F9PEwsYW75PV+pl5ZgOR11ldx7Zz3ttZV01FawsaaS5mBZTj9caXJYYzrqKnnsvq38ybNnKfIIv3rfVjoWqO8TjiUYm4kxFooyNhNjPBRjfCbG8LT15j/7ZSeDkZkoxsw9Z01lCU2BMlqry7mno4amYBnNgXKaAmU0B8vZ4C/TbiC1rnz43s28fHGEj33pKC9eHOandjWzqb4SX6mXpLEmUIRjSes1FYoyOh1jLBRjbCbK6EyUkemonQCsRDBj7+WRrsgjNPrLaA6WsbfdKuXeHCynJVg2e9vND1Zi5ns3WGP27dtnDhw44HYYjkkmDX/2/Dn++rs9xJOGqjIvwYpiikSIxJNE40mmIvFbmqC3Ky8uoq6qhDpf6exXva+Euirrdm1lCQ3+MpoCZbpYTBWkcCzBE8+e5fM/ujxbYmUpHrHW2VRXltBQVUp9VZn9byn1Pvtf+6umosT1mXYictAYs2/e+zQ5rF394yGePXmDnoEpJkIxDFBS5KG02ENliZdARTHB8hKCFcUEy4vxlxcTrCimuqKEylJtNCqViZlonKO941wbDTEZjlHkEUq9RZQWe6zXVLn1mqquKKGqzOv6G/5yLJYc9B1iDWsKlPOB13a4HYZS61pFiZfXbKp1OwzHaUexUkqpOTQ5KKWUmsOV5CAiu0XkRRE5LCIHRGR/2n2fEJEeETkjIm9zIz6llCp0bo05/CHwu8aYb4rIO+3v7xWRLuAhoBtoBp4TkTuMMZlNFVBKKZUVbnUrGcBv3w4AffbtB4GnjDERY8xFoAfYP8/vK6WUyiG3Wg6PAd8WkT/GSlCvs4+3AC+m/VyvfWwOEXkEeASgvb09Z4EqpVQhyllyEJHngMZ57vokcB/wa8aYL4nIzwCfAe4H5psgPO9CDGPMk8CTYK1zyErQSimlgBwmB2PM/QvdJyL/AHzU/vafgb+zb/cC6YVMWrnZ5aSUUsohbnUr9QFvBr4HvAU4Zx9/BvgnEXkCa0B6K/DyUg928ODBIRG5vIp46oChVfx+rmhcy6NxLY/GtTzrMa6NC93hVnL4EPDnIuIFwthjB8aYEyLyNHASiAOPZjJTyRhTv5pgROTAQkvI3aRxLY/GtTwa1/IUWlyuJAdjzA+AeQulG2MeBx53NiKllFLpdIW0UkqpOTQ5WJ50O4AFaFzLo3Etj8a1PAUV17oo2a2UUiq7tOWglFJqDk0OSiml5ijo5CAib7erv/aIyMddjKNNRL4rIqdE5ISIfNQ+/jsics2uXnvYLlLodGyXRORYqoKufaxGRJ4VkXP2v9UOx3Rn2jU5LCITIvKYG9dLRD4rIgMicjzt2ILXx6mqwwvE9UciclpEjorIV0QkaB/vEJFQ2nX7tMNxLfh3c7JK8wKxfTEtrksictg+7sg1W+S9IffPMWNMQX4BRcB5YBNQAhwBulyKpQnYa9+uAs4CXcDvAL/h8nW6BNTdduwPgY/btz8OfMrlv+N1rMU8jl8v4E3AXuD4UtfH/pseAUqBTvv5V+RgXD8BeO3bn0qLqyP951y4XvP+3Zy8XgvFdtv9fwL8lpPXbJH3hpw/xwq55bAf6DHGXDDGRIGnsKrCOs4Y02+MOWTfngROsUDBwTzxIPA5+/bngHe7Fwr3AeeNMatZIb9ixph/B0ZuO7zQ9XGs6vB8cRljvmOMidvfvohVnsZRC1yvhThapXmx2EREgJ8B/l+uzr9ATAu9N+T8OVbIyaEFuJr2/YIVYJ0kIh3AHuAl+9BH7G6AzzrdfWMzwHdE5KBdCRdggzGmH6wnL9DgQlwpD3HrC9bt6wULX598es79IvDNtO87ReRVEXlBRN7oQjzz/d3y6Xq9EbhhjDmXdszRa3bbe0POn2OFnBwyrgDrFBHxAV8CHjPGTAB/A2wGdgP9WM1ap73eGLMXeAfwqIi8yYUY5iUiJcADWMUbIT+u12Ly4jknIp/EKk/zBftQP9BujNkD/DpWfTP/Qr+fAwv93fLietnex60fQhy9ZvO8Nyz4o/McW9E1K+TkkFcVYEWkGOuP/wVjzJcBjDE3jDEJY0wS+Ftc2PjIGNNn/zsAfMWO4YaINNlxNwEDTsdlewdwyBhzw47R9etlW+j6uP6cE5GHgXcBP2fsTmq7C2LYvn0Qq5/6DqdiWuTv5vr1AhCrBtx7gC+mjjl5zeZ7b8CB51ghJ4dXgK0i0ml/An0Iqyqs4+z+zM8Ap4wxT6Qdb0r7sf8EHL/9d3McV6WIVKVuYw1oHse6Tg/bP/Yw8FUn40pzy6c5t69XmoWuzzPAQyJSKiKdZFh1OFtE5O3AbwIPGGNm0o7Xi0iRfXuTHdcFB+Na6O/m6vVKcz9w2hjTmzrg1DVb6L0BJ55juR5tz+cv4J1Yo//ngU+6GMcbsJp+R4HD9tc7gc8Dx+zjzwBNDse1CWvmwxHgROoaAbXA81il1p8Haly4ZhXAMBBIO+b49cJKTv1ADOtT2wcXuz5Ym12dB84A73A4rh6s/ujUc+zT9s++1/77HgEOAT/lcFwL/t2cul4LxWYf/3vgl2/7WUeu2SLvDTl/jmn5DKWUUnMUcreSUkqpBWhyUEopNYcmB6WUUnNoclBKKTWHJgellFJzaHJQBU1EatMqa15Pqw46JSJ/naNzPiYiH8jC4zwlIluzEZNSt9OprErZROR3gCljzB/n8BxerHnxe83NIngrfaw3A+83xnwoK8EplUZbDkrNQ0TuFZGv27d/R0Q+JyLfsWv6v0dE/lCsfS6+ZZc3QETutouwHRSRb9+28jflLVglP+L273xPRP5URP7drtl/j4h82a7T//v2z1SKyDdE5IiIHBeRn7Uf6/vA/XbCUSqrNDkolZnNwE9ilUT+R+C7xpidQAj4STtB/CXw08aYu4HPAo/P8zivBw7edixqjHkT8GmsMgiPAjuAXxCRWuDtQJ8x5i5jzA7gWwDGqkXUA9yV1f+pUmhyUCpT3zTGxLDKPBRhv0Hb33cAd2K9oT8r1m5h/5P590toAgZvO5aq6XUMOGGsGv4RrFo9bfbx+0XkUyLyRmPMeNrvDgDNq/y/KTWHNkeVykwErE/rIhIzNwfrklivI8F6Y3/tEo8TAsrme2z7sSJpx5NYO7edFZG7sWrq/B8R+Y4x5vfsnymzH1OprNKWg1LZcQaoF5HXglVmWUS65/m5U8CW5TywiDQDM8aYfwT+GGsry5Q7sArAKZVV2nJQKguMMVER+WngL0QkgPXa+jPmvnF/E6sK6XLsBP5IRJJYFUM/DCAiG4CQsXcEUyqbdCqrUg4Tka8AHzO3bjm5ksf5NWDCGPOZ7ESm1E3araSU8z6ONTC9WmPc3GReqazSloNSSqk5tOWglFJqDk0OSiml5tDkoJRSag5NDkoppebQ5KCUUmqO/w//kFYPbIcBCgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bp.backend.set('pytorch')\n",
    "\n",
    "group = HH(100, monitors=['V'])\n",
    "group.run(200., inputs=('input', 10.))\n",
    "bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Second is NumPy."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:00.330366Z",
     "start_time": "2021-03-25T03:02:58.561102Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bp.backend.set('numpy')\n",
    "\n",
    "group = HH(100, monitors=['V'])\n",
    "group.run(200., inputs=('input', 10.))\n",
    "bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The last is Numba."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:12.362447Z",
     "start_time": "2021-03-25T03:03:00.335509Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "bp.backend.set('numba')\n",
    "\n",
    "group = HH(100, monitors=['V'])\n",
    "group.run(200., inputs=('input', 10.))\n",
    "bp.visualize.line_plot(group.mon.ts, group.mon.V, show=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## brainpy.TwoEndConn"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For synaptic connections, BrainPy provides `brainpy.TwoEndConn` to help you construct the projection between pre-synaptic and post-synaptic neuron groups, and provides `brainpy.connect.Connector` for synaptic connectivity between pre- and post- groups. \n",
    "\n",
    "- The benifit of using `brainpy.TwoEndConn` lies at the **automatical synaptic delay**. The synapse modeling usually includes a delay time (typically 0.3–0.5 ms) required for a neurotransmitter to be released from a presynaptic membrane, diffuse across the synaptic cleft, and bind to a receptor site on the post-synaptic membrane. BrainPy provides `register_constant_dely()` for automatical state delay. \n",
    "\n",
    "- The benifit of using `brainpy.connect.Connector` lies at the **connectivity structure construction**. `brainpy.connect.Connector` provides various synaptic structures, like \"pre_ids\", \"post_ids\", \"conn_mat\", \"pre2post\", \"post2pre\", \"pre2syn\", \"post2syn\", \"pre_slice_syn\", and \"post_slice_syn\". Users can \"requires\" such data structures by calling `connector.requires('pre_ids', 'post_ids', ...)`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, let's illustrate this by the AMPA synapse model."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### AMPA Synapse Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:12.401462Z",
     "start_time": "2021-03-25T03:03:12.369072Z"
    }
   },
   "outputs": [],
   "source": [
    "class AMPA(bp.TwoEndConn):\n",
    "    target_backend = ['numpy', 'numba']\n",
    "\n",
    "    def __init__(self, pre, post, conn, delay=0., g_max=0.10, E=0., tau=2.0, **kwargs):\n",
    "        # parameters\n",
    "        self.g_max = g_max\n",
    "        self.E = E\n",
    "        self.tau = tau\n",
    "        self.delay = delay\n",
    "\n",
    "        # connections\n",
    "        self.conn = conn(pre.size, post.size)\n",
    "        self.conn_mat = conn.requires('conn_mat')\n",
    "        self.size = bp.backend.shape(self.conn_mat)\n",
    "\n",
    "        # variables\n",
    "        self.s = bp.backend.zeros(self.size)\n",
    "        self.g = self.register_constant_delay('g', size=self.size, delay_time=delay)\n",
    "\n",
    "        super(AMPA, self).__init__(pre=pre, post=post, **kwargs)\n",
    "\n",
    "    @staticmethod\n",
    "    @bp.odeint(dt=0.01)\n",
    "    def int_s(s, t, tau):\n",
    "        return - s / tau\n",
    "\n",
    "    def update(self, _t):\n",
    "        self.s = self.int_s(self.s, _t, self.tau)\n",
    "        for i in range(self.pre.size[0]):\n",
    "            if self.pre.spike[i] > 0:\n",
    "                self.s[i] += self.conn_mat[i]\n",
    "        self.g.push(self.g_max * self.s)\n",
    "        g = self.g.pull()\n",
    "        self.post.input -= bp.backend.sum(g, axis=0) * (self.post.V - self.E)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To define a two-end projection synapse is very much like the NeuGroup. Users need to inherit the `brainpy.TwoEndConn`, and provide the \"target_backend\" specification, \"update\" function and then \"super()\" initialize the parent class. But what different are two aspects: 1. connection. We need construct the synaptic connectivity by \"connector.requires\". 2. delay. We can register a constant delay variable by \"self.register_constant_delay()\"."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, we create a matrix-based connectivity (with the shape of `(num_pre, num_post)`). "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"../images/syn-example-conn_mat.png\" width=\"400 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And then register a delay variable \"self.g\" with the shape of `(num_pre, num_post)`."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## brainpy.Network"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now, let's put the above defined HH model and AMPA synapse together to construct a network with `brainpy.Network`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:12.416738Z",
     "start_time": "2021-03-25T03:03:12.406188Z"
    }
   },
   "outputs": [],
   "source": [
    "bp.backend.set('numpy')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:12.440969Z",
     "start_time": "2021-03-25T03:03:12.421049Z"
    }
   },
   "outputs": [],
   "source": [
    "group = HH(10, monitors=['V', 'spike'])\n",
    "syn = AMPA(pre=group, post=group, conn=bp.connect.All2All(), delay=1.5, monitors=['s'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:14.861988Z",
     "start_time": "2021-03-25T03:03:12.443012Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Compilation used 0.8206 s.\n",
      "Start running ...\n",
      "Run 10.0% used 0.188 s.\n",
      "Run 20.0% used 0.342 s.\n",
      "Run 30.0% used 0.506 s.\n",
      "Run 40.0% used 0.643 s.\n",
      "Run 50.0% used 0.771 s.\n",
      "Run 60.0% used 0.896 s.\n",
      "Run 70.0% used 1.098 s.\n",
      "Run 80.0% used 1.282 s.\n",
      "Run 90.0% used 1.431 s.\n",
      "Run 100.0% used 1.585 s.\n",
      "Simulation is done in 1.585 s.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "net = bp.Network(group, syn)\n",
    "net.run(duration=200., inputs=(group, \"input\", 20.), report=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:15.584605Z",
     "start_time": "2021-03-25T03:03:14.865850Z"
    },
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, gs = bp.visualize.get_figure(2, 1, 3, 8)\n",
    "\n",
    "fig.add_subplot(gs[0, 0])\n",
    "bp.visualize.line_plot(group.mon.ts, group.mon.V, legend='pre-V')\n",
    "\n",
    "fig.add_subplot(gs[1, 0])\n",
    "bp.visualize.line_plot(syn.mon.ts, syn.mon.s, legend='syn-s', show=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## brainpy.connect module"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "BrainPy provides several commonly used connection methods in ``brainpy.connect`` module (see the follows). They are all inherited from the base class `brainpy.connect.Connector`. Users can also customize their synaptic connectivity by class inheritance. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.One2One\n",
    "\n",
    "The neurons in the pre-synaptic neuron group only connect to the neurons\n",
    "in the same position of the post-synaptic group. Thus, this connection\n",
    "requires the indices of two neuron groups same. Otherwise, an error will\n",
    "occurs.\n",
    "\n",
    "<img src=\"../images/one2one.png\" width=\"200 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.All2All\n",
    "\n",
    "All neurons of the post-synaptic population form connections with all\n",
    "neurons of the pre-synaptic population (dense connectivity). Users can\n",
    "choose whether connect the neurons at the same position\n",
    "(`include_self=True or False`).\n",
    "\n",
    "<img src=\"../images/all2all.png\" width=\"200 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.GridFour\n",
    "\n",
    "`GridFour` is the four nearest neighbors connection. Each neuron connect to its\n",
    "nearest four neurons.\n",
    "\n",
    "<img src=\"../images/grid_four.png\" width=\"250 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.GridEight\n",
    "\n",
    "`GridEight` is eight nearest neighbors connection. Each neuron connect to its\n",
    "nearest eight neurons.\n",
    "\n",
    "<img src=\"../images/grid_eight.png\" width=\"250 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.GridN\n",
    "\n",
    "`GridN` is also a nearest neighbors connection. Each neuron connect to its\n",
    "nearest $2N \\cdot 2N$ neurons.\n",
    "\n",
    "<img src=\"../images/grid_N.png\" width=\"250 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.FixedProb\n",
    "\n",
    "For each post-synaptic neuron, there is a fixed probability that it forms a connection\n",
    "with a neuron of the pre-synaptic population. It is basically a all_to_all projection,\n",
    "except some synapses are not created, making the projection sparser.\n",
    "\n",
    "<img src=\"../images/fixed_proab.png\" width=\"200 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.FixedPreNum\n",
    "\n",
    "Each neuron in the post-synaptic population receives connections from a\n",
    "fixed number of neurons of the pre-synaptic population chosen randomly.\n",
    "It may happen that two post-synaptic neurons are connected to the same\n",
    "pre-synaptic neuron and that some pre-synaptic neurons are connected to\n",
    "nothing.\n",
    "\n",
    "<img src=\"../images/fixed_pre_num.png\" width=\"200 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.FixedPostNum\n",
    "\n",
    "Each neuron in the pre-synaptic population sends a connection to a fixed number of neurons\n",
    "of the post-synaptic population chosen randomly. It may happen that two pre-synaptic neurons\n",
    "are connected to the same post-synaptic neuron and that some post-synaptic neurons receive\n",
    "no connection at all.\n",
    "\n",
    "<img src=\"../images/fixed_post_num.png\" width=\"200 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.GaussianProb\n",
    "\n",
    "\n",
    "Builds a Gaussian connection pattern between the two populations, where\n",
    "the connection probability decay according to the gaussian function.\n",
    "\n",
    "Specifically,\n",
    "\n",
    "$$\n",
    "p=\\exp(-\\frac{(x-x_c)^2+(y-y_c)^2}{2\\sigma^2})\n",
    "$$\n",
    "\n",
    "where $(x, y)$ is the position of the pre-synaptic neuron\n",
    "and $(x_c,y_c)$ is the position of the post-synaptic neuron.\n",
    "\n",
    "For example, in a $30 \\textrm{x} 30$ two-dimensional networks, when\n",
    "$\\beta = \\frac{1}{2\\sigma^2} = 0.1$, the connection pattern is shown\n",
    "as the follows:\n",
    "\n",
    "<img src=\"../images/gaussian_prob.png\" width=\"500 px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.GaussianWeight\n",
    "\n",
    "Builds a Gaussian connection pattern between the two populations, where\n",
    "the weights decay with gaussian function.\n",
    "\n",
    "Specifically,\n",
    "\n",
    "$$w(x, y) = w_{max} \\cdot \\exp(-\\frac{(x-x_c)^2+(y-y_c)^2}{2\\sigma^2})$$\n",
    "\n",
    "where $(x, y)$ is the position of the pre-synaptic neuron (normalized\n",
    "to [0,1]) and $(x_c,y_c)$ is the position of the post-synaptic neuron\n",
    "(normalized to [0,1]), $w_{max}$ is the maximum weight. In order to void\n",
    "creating useless synapses, $w_{min}$ can be set to restrict the creation\n",
    "of synapses to the cases where the value of the weight would be superior\n",
    "to $w_{min}$. Default is $0.01 w_{max}$.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:15.602031Z",
     "start_time": "2021-03-25T03:03:15.587416Z"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def show_weight(pre_ids, post_ids, weights, geometry, neu_id):\n",
    "    height, width = geometry\n",
    "    ids = np.where(pre_ids == neu_id)[0]\n",
    "    post_ids = post_ids[ids]\n",
    "    weights = weights[ids]\n",
    "\n",
    "    X, Y = np.arange(height), np.arange(width)\n",
    "    X, Y = np.meshgrid(X, Y)\n",
    "    Z = np.zeros(geometry)\n",
    "    for id_, weight in zip(post_ids, weights):\n",
    "        h, w = id_ // width, id_ % width\n",
    "        Z[h, w] = weight\n",
    "\n",
    "    fig = plt.figure()\n",
    "    ax = fig.gca(projection='3d')\n",
    "    surf = ax.plot_surface(X, Y, Z, cmap=plt.cm.coolwarm, linewidth=0, antialiased=False)\n",
    "    fig.colorbar(surf, shrink=0.5, aspect=5)\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:18.031905Z",
     "start_time": "2021-03-25T03:03:15.606977Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "gaussian_weight = bp.connect.GaussianWeight(\n",
    "    sigma=0.1, w_max=1., w_min=0.01,\n",
    "    normalize=True, include_self=True)\n",
    "pre_geom = post_geom = (40, 40)\n",
    "gaussian_weight(pre_geom, post_geom)\n",
    "\n",
    "pre_ids = gaussian_weight.pre_ids\n",
    "post_ids = gaussian_weight.post_ids\n",
    "weights = gaussian_weight.weights\n",
    "show_weight(pre_ids, post_ids, weights, pre_geom, 820)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### brainpy.connect.DOG\n",
    "\n",
    "\n",
    "Builds a Difference-Of-Gaussian (dog) connection pattern between the two populations.\n",
    "\n",
    "Mathematically,\n",
    "\n",
    "$$\n",
    "w(x, y) = w_{max}^+ \\cdot \\exp(-\\frac{(x-x_c)^2+(y-y_c)^2}{2\\sigma_+^2})\n",
    "    - w_{max}^- \\cdot \\exp(-\\frac{(x-x_c)^2+(y-y_c)^2}{2\\sigma_-^2})\n",
    "$$\n",
    "\n",
    "where weights smaller than $0.01 * abs(w_{max} - w_{min})$ are not created and\n",
    "self-connections are avoided by default (parameter allow_self_connections).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2021-03-25T03:03:20.846295Z",
     "start_time": "2021-03-25T03:03:18.032908Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dog = bp.connect.DOG(\n",
    "    sigmas=(0.08, 0.15),\n",
    "    ws_max=(1.0, 0.7), w_min=0.01,\n",
    "    normalize=True, include_self=True)\n",
    "h = 40\n",
    "pre_geom = post_geom = (h, h)\n",
    "dog(pre_geom, post_geom)\n",
    "\n",
    "pre_ids = dog.pre_ids\n",
    "post_ids = dog.post_ids\n",
    "weights = dog.weights\n",
    "show_weight(pre_ids, post_ids, weights, (h, h), h * h // 2 + h // 2)"
   ]
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.9"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {
    "height": "411px",
    "width": "316px"
   },
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "243.07px"
   },
   "toc_section_display": true,
   "toc_window_display": false
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
